package com.shrct.businessprocess.budget;

import com.google.common.base.Objects;
import com.shrct.businessprocess.budget.RCBudget;
import com.shrct.businessprocess.budget.RCBudgetCategory;
import com.shrct.businessprocess.project.RCProject;
import org.eclipse.xtext.xbase.lib.Functions.Function1;

@SuppressWarnings("all")
public class BudgetType {
  private RCBudgetCategory budgetCategory;
  
  private String typeid;
  
  private String name;
  
  private Boolean _isSingleValued = Boolean.valueOf(true);
  
  private Function1<? super RCProject,? extends RCBudget> creator = null;
  
  public BudgetType(final String typeid, final RCBudgetCategory budgetCategory, final String name, final Boolean _isSingleValued) {
    this.typeid = typeid;
    this.budgetCategory = budgetCategory;
    this.name = name;
    this._isSingleValued = _isSingleValued;
  }
  
  public BudgetType(final String typeid, final RCBudgetCategory budgetCategory, final String name, final Boolean _isSingleValued, final Function1<? super RCProject,? extends RCBudget> creator) {
    this.typeid = typeid;
    this.budgetCategory = budgetCategory;
    this.name = name;
    this._isSingleValued = _isSingleValued;
    this.creator = creator;
  }
  
  public RCBudgetCategory getBudgetCategory() {
    return this.budgetCategory;
  }
  
  public String getName() {
    return this.name;
  }
  
  public String getTypeid() {
    return this.typeid;
  }
  
  public Boolean getIsSingleValued() {
    return this._isSingleValued;
  }
  
  public Function1<? super RCProject,? extends RCBudget> getCreator() {
    return this.creator;
  }
  
  public Boolean canCreateByDefault() {
    boolean _notEquals = (!Objects.equal(this.creator, null));
    return Boolean.valueOf(_notEquals);
  }
}
